package com.kk.service;

import com.kk.model.Menu;
import com.kk.model.User;

import java.util.List;
import java.util.Set;

/**
 * @author: kevin
 * @data: 2018-08-22 10:07
 * @desc:   菜单接口
 */
public interface MenuService {

    /**
     * 获取树形结构菜单
     * @param topMenuList：所有一级菜单
     * @param allMenuList: 所有菜单
     * @return
     */
    List<Menu> getMenuTreeList(List<Menu> topMenuList, List<Menu> allMenuList);


    /**
     * 获取菜单下所有子菜单
     * @param menu
     * @param allMenuList
     * @return
     */
    Set<Menu> getChildMenuList(Menu menu, List<Menu> allMenuList);

    /**
     * 获取所有一级菜单
     * @param user
     * @return
     */
    List<Menu> getTopMenuList(User user);

    /**
     * 获取该用户下所有菜单
     * @param user 用户
     * @return
     */
    List<Menu> getAllMenuList(User user);

    /**
     * 获取该用户下所有的按钮操作
     * @param user
     * @return
     */
    List<Menu> getButtonList(User user);

    /**
     * 此id在menu实体中是否存在
     * true:存在
     * @param id
     * @return
     */
    boolean isExistById(String id);
}
